//
// GPSMapEdit
// (c) Konstantin Galichsky (kg@geopainting.com), 2002-2005
//
// The POI icons.
//

# include "StdAfx.h"
# include "Resource.h"
# include "TypesPOIDraw.h"
# include "Globals.h"

HCURSOR	g_hcurUnknown;
HCURSOR g_hcurService;
HCURSOR g_hcurAutoRental;
HCURSOR g_hcurAutoWash;
HCURSOR g_hcurAutoClub;
HCURSOR g_hcurCarDealer;
HCURSOR g_hcurAutoRepair;
HCURSOR g_hcurTruckStop;
HCURSOR g_hcurBar;
HCURSOR g_hcurWinery;
HCURSOR g_hcurDrinkingWater;
HCURSOR g_hcurExit;
HCURSOR g_hcurWeight;
HCURSOR g_hcurToll;
HCURSOR g_hcurInformation;
HCURSOR g_hcurLibrary;
HCURSOR g_hcurPolice;
HCURSOR g_hcurFireDepartment;
HCURSOR g_hcurCourt;
HCURSOR g_hcurRestroom;
HCURSOR g_hcurRock;
HCURSOR g_hcurSpring;
HCURSOR g_hcurBank;
HCURSOR g_hcurCulture;
HCURSOR g_hcurLeasure;
HCURSOR g_hcurCinema;
HCURSOR g_hcurCasino;
HCURSOR g_hcurBowling;
HCURSOR g_hcurIceSkate;
HCURSOR g_hcurControlled;
HCURSOR g_hcurDanger;
HCURSOR g_hcurRestricted;
HCURSOR g_hcurBell;
HCURSOR g_hcurHorn;
HCURSOR g_hcurDiving;
HCURSOR g_hcurDining;
HCURSOR g_hcurHotel;
HCURSOR g_hcurMuseum;
HCURSOR g_hcurParking;
HCURSOR g_hcurPetrol;
HCURSOR g_hcurPostOffice;
HCURSOR g_hcurRegion;
HCURSOR g_hcurShopping;
HCURSOR g_hcurDepartmentStore;
HCURSOR g_hcurSports;
HCURSOR g_hcurSwimming;
HCURSOR g_hcurSkiing;
HCURSOR g_hcurTelephone;
HCURSOR g_hcurTheatre;
HCURSOR g_hcurSettlement;
HCURSOR g_hcurCitySmall;
HCURSOR g_hcurCityMedium;
HCURSOR g_hcurCityBig;
HCURSOR g_hcurCityMega;
HCURSOR g_hcurTop;
HCURSOR g_hcurAirport;
HCURSOR g_hcurAirportLarge;
HCURSOR g_hcurHeliport;
HCURSOR g_hcurBuilding;
HCURSOR g_hcurChurch;
HCURSOR g_hcurPassing;
HCURSOR g_hcurTree;
HCURSOR g_hcurStation;
HCURSOR g_hcurBridge;
HCURSOR g_hcurCemetery;
HCURSOR g_hcurHill;
HCURSOR g_hcurZoo;
HCURSOR g_hcurSchool;
HCURSOR g_hcurPicnic;
HCURSOR g_hcurHospital;
HCURSOR g_hcurCamping;
HCURSOR g_hcurCliff;
HCURSOR g_hcurFalls;
HCURSOR g_hcurIsland;
HCURSOR g_hcurReservoir;
HCURSOR g_hcurNamedpoint;
HCURSOR g_hcurMilitary;
HCURSOR g_hcurTower;
HCURSOR g_hcurFish;
HCURSOR g_hcurWreck;
HCURSOR g_hcurGolf;
HCURSOR g_hcurShower;
HCURSOR g_hcurScenic;
HCURSOR g_hcurPark;
HCURSOR g_hcurDam;
HCURSOR g_hcurPharmacy;
HCURSOR g_hcurAmusementPark;
HCURSOR g_hcurBoatRamp;
HCURSOR g_hcurPublic;
HCURSOR g_hcurMine;
HCURSOR g_hcurOil;
HCURSOR g_hcurTunnel;
HCURSOR g_hcurManMade;
HCURSOR g_hcurLocale;
HCURSOR g_hcurTrailHead;
HCURSOR g_hcurGhostTown;
HCURSOR g_hcurWater;
HCURSOR g_hcurArroyo;
HCURSOR g_hcurGeyser;
HCURSOR g_hcurSwamp;
HCURSOR g_hcurStream;
HCURSOR g_hcurLand;
HCURSOR g_hcurArch;
HCURSOR g_hcurCrater;
HCURSOR g_hcurLava;
HCURSOR g_hcurPillar;

HCURSOR g_hcurReef;
HCURSOR g_hcurReefAwash;
HCURSOR g_hcurGrounding;
HCURSOR g_hcurWreckVisible;
HCURSOR g_hcurWreckDangerous;
HCURSOR g_hcurWreckNonDangerous;
HCURSOR g_hcurWreckDrag;
HCURSOR g_hcurObstruction;
HCURSOR g_hcurObstructionAwash;
HCURSOR g_hcurObstructionDrag;

HCURSOR g_hcurFogHorn;
HCURSOR g_hcurRadioBeacon;
HCURSOR g_hcurRacon;
HCURSOR g_hcurBeaconTriangle;
HCURSOR g_hcurBeaconSquare;
HCURSOR g_hcurBeaconDiamond;
HCURSOR g_hcurUNavaidWhite;
HCURSOR g_hcurUNavaidRed;
HCURSOR g_hcurUNavaidGreen;
HCURSOR g_hcurUNavaidBlack;
HCURSOR g_hcurUNavaidYellow;
HCURSOR g_hcurUNavaidOrange;
HCURSOR g_hcurUNavaidMulti;
HCURSOR g_hcurNavaid;
HCURSOR g_hcurNavaidWhite;
HCURSOR g_hcurNavaidRed;
HCURSOR g_hcurNavaidGreen;
HCURSOR g_hcurNavaidYellow;
HCURSOR g_hcurNavaidOrange;
HCURSOR g_hcurNavaidViolet;
HCURSOR g_hcurNavaidBlue;
HCURSOR g_hcurNavaidMulti;

HCURSOR g_hcurRWTerminal;
HCURSOR g_hcurRWStation;
HCURSOR g_hcurUGStation;
HCURSOR g_hcurBusStation;
HCURSOR g_hcurBusStop;
HCURSOR g_hcurTramStop;
HCURSOR g_hcurTrolleyStop;
HCURSOR g_hcurCableCar;
HCURSOR g_hcurPort;
HCURSOR g_hcurWharf;
HCURSOR g_hcurFerryTerminal;

HCURSOR g_hcurChurchOrthodox;
HCURSOR g_hcurChurchCatholic;
HCURSOR g_hcurChurchProtestant;
HCURSOR g_hcurMosque;
HCURSOR g_hcurSynagogue;
HCURSOR g_hcurPagoda;

HCURSOR g_hcurTrafficLight;
HCURSOR g_hcurTrafficPolice;
HCURSOR g_hcurRWCrossing;
HCURSOR g_hcurRoughRoad;
HCURSOR g_hcurRadar;
HCURSOR g_hcurHeightLimit;
HCURSOR g_hcurNoTransit;
HCURSOR g_hcurGasFuel;

HCURSOR g_hcurATM;
HCURSOR g_hcurHairdressing;

HCURSOR g_hcurFord;
HCURSOR g_hcurMonument;
HCURSOR g_hcurFountain;
HCURSOR g_hcurWaterTower;
HCURSOR g_hcurRadioTower;
HCURSOR g_hcurGeodeticPoint;
HCURSOR g_hcurPit;
HCURSOR g_hcurBarrow;
HCURSOR g_hcurStone;
HCURSOR g_hcurPeatery;
HCURSOR g_hcurFootBridge;
HCURSOR g_hcurCavernEntry;

HCURSOR g_hcurDeciduousForest;
HCURSOR g_hcurConiferousForest;
HCURSOR g_hcurMixedForest;
HCURSOR g_hcurSingleTree;
HCURSOR g_hcurIsolatedBush;
HCURSOR g_hcurGrove;

HCURSOR g_hcurNurserySchool;
HCURSOR g_hcurSecondarySchool;
HCURSOR g_hcurVocationalSchool;
HCURSOR g_hcurCollege;
HCURSOR g_hcurSpecializedSchool;

struct cursor_init_t {
	HCURSOR * phcur;
	int       iRes;
};

static cursor_init_t g_ci [] = {
	{& g_hcurService          , IDC_Service},
	{& g_hcurAutoRental       , IDC_AutoRental},
	{& g_hcurAutoWash         , IDC_AutoWash},
	{& g_hcurAutoClub         , IDC_AutoClub},
	{& g_hcurCarDealer        , IDC_CarDealer},
	{& g_hcurAutoRepair       , IDC_AutoRepair},
	{& g_hcurTruckStop        , IDC_TruckStop},
	{& g_hcurBar              , IDC_Bar},
	{& g_hcurWinery              , IDC_Winery},
	{& g_hcurDrinkingWater    , IDC_DrinkingWater},
	{& g_hcurExit             , IDC_Exit},
	{& g_hcurToll             , IDC_Toll},
	{& g_hcurInformation      , IDC_Information},
	{& g_hcurLibrary          , IDC_Library},
	{& g_hcurPolice           , IDC_Police},
	{& g_hcurFireDepartment   , IDC_FireDepartment},
	{& g_hcurCourt            , IDC_Court},
	{& g_hcurRestroom         , IDC_Restroom},
	{& g_hcurRock             , IDC_Rock},
	{& g_hcurSpring           , IDC_Spring},
	{& g_hcurBank             , IDC_Bank},
	{& g_hcurCulture          , IDC_Culture},
	{& g_hcurLeasure          , IDC_Leasure},
	{& g_hcurCinema           , IDC_Cinema},
	{& g_hcurCasino           , IDC_Casino},
	{& g_hcurBowling          , IDC_Bowling},
	{& g_hcurIceSkate         , IDC_IceSkate},
	{& g_hcurControlled       , IDC_Controlled},
	{& g_hcurDanger           , IDC_Danger},
	{& g_hcurRestricted       , IDC_Restricted},
	{& g_hcurBell             , IDC_Bell},
	{& g_hcurHorn             , IDC_Horn},
	{& g_hcurDiving           , IDC_Diving},
	{& g_hcurDining           , IDC_Dining},
	{& g_hcurHotel            , IDC_Hotel},
	{& g_hcurMuseum           , IDC_Museum},
	{& g_hcurParking          , IDC_Parking},
	{& g_hcurPetrol           , IDC_Petrol},
	{& g_hcurWeight           , IDC_Weight},
	{& g_hcurPostOffice       , IDC_PostOffice},
	{& g_hcurShopping         , IDC_Shopping},
	{& g_hcurDepartmentStore  , IDC_DepartmentStore}, 
	{& g_hcurSports           , IDC_Sports},
	{& g_hcurSkiing           , IDC_Skiing},
	{& g_hcurSwimming         , IDC_Swimming},
	{& g_hcurTelephone        , IDC_Telephone},
	{& g_hcurTheatre          , IDC_Theatre},
	{& g_hcurSettlement       , IDC_Settlement},
	{& g_hcurCitySmall        , IDC_CitySmall},
	{& g_hcurCityMedium       , IDC_CityMedium},
	{& g_hcurCityBig          , IDC_CityBig},
	{& g_hcurCityMega         , IDC_CityMega},
	{& g_hcurTop              , IDC_Topc},
	{& g_hcurAirport          , IDC_Airport},
	{& g_hcurAirportLarge     , IDC_AirportLarge},
	{& g_hcurHeliport         , IDC_Heliport},
	{& g_hcurBuilding         , IDC_Building},
	{& g_hcurChurch           , IDC_Church},
	{& g_hcurPassing          , IDC_Passing},
	{& g_hcurTree             , IDC_Tree},
	{& g_hcurStation          , IDC_Station},
	{& g_hcurBridge           , IDC_Bridge},
	{& g_hcurCemetery         , IDC_Cemetery},
	{& g_hcurHill             , IDC_Hill},
	{& g_hcurZoo              , IDC_Zoo},
	{& g_hcurSchool           , IDC_School},
	{& g_hcurPicnic           , IDC_Picnic},
	{& g_hcurHospital         , IDC_Hospital},
	{& g_hcurCamping          , IDC_Camping},
	{& g_hcurCliff            , IDC_Cliff},
	{& g_hcurFalls            , IDC_Falls},
	{& g_hcurIsland           , IDC_Island},
	{& g_hcurReservoir        , IDC_Reservoir},
	{& g_hcurNamedpoint       , IDC_Namedpoint},
	{& g_hcurMilitary         , IDC_Military},
	{& g_hcurTower            , IDC_Tower},
	{& g_hcurFish             , IDC_Fish},
	{& g_hcurWreck            , IDC_Wreck},
	{& g_hcurGolf             , IDC_Golf},
	{& g_hcurShower           , IDC_Shower},
	{& g_hcurScenic           , IDC_Scenic},
	{& g_hcurPark             , IDC_Park},
	{& g_hcurDam              , IDC_Dam},
	{& g_hcurPharmacy         , IDC_Pharmacy},
	{& g_hcurAmusementPark    , IDC_AmusementPark},
	{& g_hcurBoatRamp         , IDC_BoatRamp},
	{& g_hcurPublic           , IDC_Public},
	{& g_hcurMine             , IDC_Mine},
	{& g_hcurOil              , IDC_Oil},
	{& g_hcurTunnel           , IDC_Tunnel},
	{& g_hcurManMade          , IDC_ManMade},
	{& g_hcurLocale           , IDC_Locale},
	{& g_hcurTrailHead        , IDC_TrailHead},
	{& g_hcurGhostTown        , IDC_GhostTown},
	{& g_hcurWater            , IDC_Water},
	{& g_hcurArroyo           , IDC_Arroyo},
	{& g_hcurGeyser           , IDC_Geyser},
	{& g_hcurSwamp            , IDC_Swamp},
	{& g_hcurStream           , IDC_Stream},
	{& g_hcurLand             , IDC_Land},
	{& g_hcurArch             , IDC_Arch},
	{& g_hcurCrater           , IDC_Crater},
	{& g_hcurLava             , IDC_Lava},
	{& g_hcurPillar           , IDC_Pillar},

	{& g_hcurRegion           , IDC_Region},

	{& g_hcurReef             , IDC_Reef},
	{& g_hcurReefAwash        , IDC_ReefAwash},
	{& g_hcurGrounding        , IDC_Sounding},
	{& g_hcurWreckVisible     , IDC_WreckVisible},
	{& g_hcurWreckDangerous   , IDC_WreckDangerous},
	{& g_hcurWreckNonDangerous, IDC_WreckNonDangerous},
	{& g_hcurWreckDrag        , IDC_WreckDrag},
	{& g_hcurObstruction      , IDC_Obstruction},
	{& g_hcurObstructionAwash , IDC_ObstructionAwash},
	{& g_hcurObstructionDrag  , IDC_ObstructionDrag},

	{& g_hcurFogHorn          , IDC_FogHorn},
	{& g_hcurRadioBeacon      , IDC_RadioBeacon},
	{& g_hcurRacon            , IDC_Racon},
	{& g_hcurBeaconTriangle   , IDC_BeaconTriangle},
	{& g_hcurBeaconSquare     , IDC_BeaconSquare},
	{& g_hcurBeaconDiamond    , IDC_BeaconDiamond},
	{& g_hcurUNavaidWhite     , IDC_UNavaidWhite},
	{& g_hcurUNavaidRed       , IDC_UNavaidRed},
	{& g_hcurUNavaidGreen     , IDC_UNavaidGreen},
	{& g_hcurUNavaidBlack     , IDC_UNavaidBlack},
	{& g_hcurUNavaidYellow    , IDC_UNavaidYellow},
	{& g_hcurUNavaidOrange    , IDC_UNavaidOrange},
	{& g_hcurUNavaidMulti     , IDC_UNavaidMulti},
	{& g_hcurNavaid           , IDC_Navaid},
	{& g_hcurNavaidWhite      , IDC_NavaidWhite},
	{& g_hcurNavaidRed        , IDC_NavaidRed},
	{& g_hcurNavaidGreen      , IDC_NavaidGreen},
	{& g_hcurNavaidYellow     , IDC_NavaidYellow},
	{& g_hcurNavaidOrange     , IDC_NavaidOrange},
	{& g_hcurNavaidViolet     , IDC_NavaidViolet},
	{& g_hcurNavaidBlue       , IDC_NavaidBlue},
	{& g_hcurNavaidMulti      , IDC_NavaidMulti},

	{& g_hcurRWTerminal       , IDC_RWTerminal},
	{& g_hcurRWStation        , IDC_RWStation},
	{& g_hcurUGStation        , IDC_UGStation},
	{& g_hcurBusStation       , IDC_BusStation},
	{& g_hcurBusStop          , IDC_BusStop},
	{& g_hcurTramStop         , IDC_TramStop},
	{& g_hcurTrolleyStop      , IDC_TrolleyStop},
	{& g_hcurCableCar         , IDC_CableCar},
	{& g_hcurPort             , IDC_Port},
	{& g_hcurWharf            , IDC_Wharf},
	{& g_hcurFerryTerminal    , IDC_FerryTerminal},

	{& g_hcurChurchOrthodox   , IDC_ChurchOrthodox},
	{& g_hcurChurchCatholic   , IDC_ChurchCatholic},
	{& g_hcurChurchProtestant , IDC_ChurchProtestant},
	{& g_hcurMosque           , IDC_Mosque},
	{& g_hcurSynagogue        , IDC_Synagogue},
	{& g_hcurPagoda           , IDC_Pagoda},

	{& g_hcurTrafficLight     , IDC_TrafficLight},
	{& g_hcurTrafficPolice    , IDC_TrafficPolice},
	{& g_hcurRWCrossing       , IDC_RWCrossing},
	{& g_hcurRoughRoad        , IDC_RoughRoad},
	{& g_hcurRadar            , IDC_Radar},
	{& g_hcurHeightLimit      , IDC_HeightLimit},
	{& g_hcurNoTransit        , IDC_NoTransit},
	{& g_hcurGasFuel          , IDC_GasFuel},

	{& g_hcurATM              , IDC_ATM},
	{& g_hcurHairdressing     , IDC_Hairdressing},

	{& g_hcurFord             , IDC_Ford},
	{& g_hcurMonument         , IDC_Monument},
	{& g_hcurFountain         , IDC_Fountain},
	{& g_hcurWaterTower       , IDC_WaterTower},
	{& g_hcurRadioTower       , IDC_RadioTower},
	{& g_hcurGeodeticPoint    , IDC_GeodeticPoint},
	{& g_hcurPit              , IDC_Pit},
	{& g_hcurBarrow           , IDC_Barrow},
	{& g_hcurStone            , IDC_Stone},
	{& g_hcurPeatery          , IDC_Peatery},
	{& g_hcurFootBridge       , IDC_FootBridge},
	{& g_hcurCavernEntry      , IDC_CavernEntry},

	{& g_hcurDeciduousForest  , IDC_DeciduousForest},
	{& g_hcurConiferousForest , IDC_ConiferousForest},
	{& g_hcurMixedForest      , IDC_MixedForest},
	{& g_hcurSingleTree       , IDC_SingleTree},
	{& g_hcurIsolatedBush     , IDC_IsolatedBush},
	{& g_hcurGrove            , IDC_Grove},

	{& g_hcurNurserySchool    , IDC_NurserySchool},
	{& g_hcurSecondarySchool  , IDC_SecondarySchool},
	{& g_hcurVocationalSchool , IDC_VocationalSchool},
	{& g_hcurCollege          , IDC_College},
	{& g_hcurSpecializedSchool, IDC_SpecializedSchool},
};

void InitCommonPOIs () {
	g_hcurUnknown = ::LoadCursor (g_hInst, MAKEINTRESOURCE (IDC_Unknown));

	for (size_t c = 0; c < sizeof (g_ci)/sizeof (g_ci [0]); ++ c)
		* (g_ci [c].phcur) = ::LoadCursor (g_hInst, MAKEINTRESOURCE (g_ci [c].iRes));
}